#ifndef MOBILE_H
#define MOBILE_H

#include "Element.h"

const int _vision[6][2] = {{0,-2},{1,-1},{1,1},{0,2},{-1,1},{-1,-1}};

/////////////// ENUM ///////////////

enum MOVE {
    N = 0, //NORTH
    NE, //NORTH-EAST
    SE, //SOUTH-EAST
    S, //SOUTH
    SW, //SOUTH-WEST
    NW //NORTH-WEST
};

class Mobile : virtual public Element
{
    private:
        /////////////// ATTRIBUTS ///////////////

        unsigned vitesse;

    public:
        /////////////// OBJET ///////////////

        Mobile(const string &, const Position &, unsigned int, Monde *);
        virtual ~Mobile();

        /////////////// ACTIONS ///////////////

        virtual void action();
        virtual void seDeplacer(unsigned _dir);
        virtual Position * getPositionLibre();

        /////////////// ATTRIBUTS ///////////////

        unsigned getVitesse() const;
};

#endif // MOBILE_H
